package domain.controllers;

import domain.Entity.EntityProyecto;
import domain.Entity.EntityTarea;
import domain.Entity.EntityUsuario;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import managers.ProyectoManager;
import managers.TareaManager;
import managers.UsuarioManager;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.view.RedirectView;

/**
 *
 * @author jorge
 */
public class mostrarTareasController implements Controller{
    
   ProyectoManager pm = ProyectoManager.getInstance();
    TareaManager tm = TareaManager.getInstance();
    UsuarioManager um= UsuarioManager.getInstance();
    
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        
        ModelAndView mav = new ModelAndView();
       HttpSession session = request.getSession();
        EntityUsuario usuario = (EntityUsuario) session.getAttribute("usuario");
        if(usuario == null){
            mav.setView(new RedirectView("login.htm"));
            return mav;
        }else{
        long dni = usuario.getDni();
        List tareasProyecto = new ArrayList();
        List tareasTrabajador = new ArrayList();
        if(usuario.getTipo().equals("gestor")){
            //List proyectos = new ArrayList();
            List proyectos = pm.mostrarProyectosGestor(dni);
            
            
            Iterator it = proyectos.iterator();
            while (it.hasNext()){
                 EntityProyecto ep = (EntityProyecto) it.next();
                 tareasProyecto.addAll(tm.mostrarTareasProyecto(ep.getIdProyecto()));
            }
            session.setAttribute("proyectosTarea", proyectos);
            session.setAttribute("misTareas", tareasProyecto);
        }else{
            List resultado = tm.mostrarTareasTrabajador(dni);
            Iterator it = resultado.iterator();
            while(it.hasNext()){
                EntityTarea tarea = (EntityTarea) it.next();
                tareasTrabajador.add(tarea);
            }
            session.setAttribute("misTareas", tareasTrabajador);
            
            }
        mav.setView(new RedirectView("misTareas.htm"));
        return mav;
        
        }
    }
}
